# -*- coding: utf-8 -*-

import wikipedia, re, time
from urllib import urlopen

def guardar(ns, num):
        """
        Guarda el texto generado en cada página.
        """
        if ns=='/':
                page = wikipedia.Page('es', u'Usuario:Muro Bot/Datos/Ediciones')
        else:
                page = wikipedia.Page('es', u'Usuario:Muro Bot/Datos/Ediciones/' + ns)
                
        ant = page.get()

        ant2 = int(ant)
        num2 = int(num)
        
        if num2>ant2:
                if 1000*float(num2-ant2)/num2>=1:
                        page.put(num, num + u' (+' + str(num2-ant2) + u', +' + str(round(1000*float(num2-ant2)/num2, 2)) + u'‰)', minorEdit=False)
                else:
                        page.put(num, num + u' (+' + str(num2-ant2) + u', +' + str(round(1000*float(num2-ant2)/num2, 2)) + u'‰)')
        elif num2<ant2:
                page.put(num, num + u' (–' + str(ant2-num2) + u', –' + str(round(1000*float(ant2-num2)/num2, 2)) + u'‰)')
        else:
                print u'Los datos son iguales.'

        if len(ns)==3:
                return int(num)
        else:
                return 0

print u'Obteniendo datos...'

t0 = time.time()

parserData = r'\<td\>([0-9]+)\</td\>'
texto = urlopen('http://toolserver.org/~vvv/yaec.php?user=Muro+Bot&wiki=eswiki_p').read()
param = re.findall(parserData, texto)

datos = ['000','001','002','003','004','005','009','010',#'006','007','008',
         '011','012','013','014','015','100','101','102','103','104','105',
         'Log/pagemoves','Log/pagemoves redirect','Log/patrol']
i = 0
suma = 0
new = u''

delta_t = time.time() - t0

print u'Datos obtenidos con éxito (%s segundos). Comenzando a guardar...' % round(float(delta_t), 2)
for numero in param:
        suma += guardar(datos[i], numero)
        print datos[i], '\t', numero
        i += 1

print 'Guardando total (%s)...' % suma
guardar('/', str(suma))

print 'Terminado.'
